<?php
class CounterController extends XPHP_Controller
{
	public function visitAction()
	{
		//Model
		$model = new Models_Counter();
		$counter = $model->db->where('id','1')->get()->result();
		$counter = $counter[0];
		//Nếu chưa đếm session hiện tại
		if(!isset($this->helper->session->hascount))
		{
			//Tăng số lượt view lên 1
			$counter->visits += 1;
			$data = array(
				'visits' => $counter->visits
			);
			$model->db->where('id', 1)
					->update($data);
			//Đánh dấu đã đếm session hiện tại
			$this->helper->session->hascount = true;
		}
		$visits = $counter->visits;
		echo $visits;
	}
	
	public function visitHiddenAction()
	{
		//Model
		$model = new Models_Counter(1);
		
		//Nếu chưa đếm session hiện tại
		if(!isset($this->helper->session->hascount))
		{
			//Tăng số lượt view lên 1
			$model->addVisits();
			//Đánh dấu đã đếm session hiện tại
			$this->helper->session->hascount = true;
		}
	}
	
	public function OnlineAJAX() {
		$folder = 'counter';
		if(!is_dir($folder)) mkdir($folder, 0777);   // Tạo thư mục counter nếu chưa có
	   	$params = $this->params;
		//Tạo file khi có thành viên mới   
		//$visiter = md5($params['user']);//mã hóa filename
		$filename = $folder.'/'.$params['ipAddress'].'_'.$params['sessionId'].'.onl';
		$f = fopen($filename, "w");
		fclose($f);
		$online = array();
	   	$online['total'] = 0;
		$current_time = time();
		$timeout = 5;//60 = 1 minute => đếm trong vòng 5s 
	
		//Load danh sách các file đã được tạo
		$flist = scandir($folder);   
		foreach($flist as $num => $file) {
			$filer = $folder.'/'.$file;
			if(substr($filer, strrpos($filer, '.') + 1) == 'onl')
			{
				$ftime = filemtime($filer);   
				if ($current_time - $ftime > $timeout)   unlink($filer);// Xóa file
				else
				{
					$online[] = preg_replace("#\.onl#","",$file);
					$online['total']++;
				}
			}
		}
		return $this->json(array("online" => $online));
	}
}